/**
 * The MIT License (MIT)
 * 
 * Copyright (c) 2016 mo_yq5 (mo_yq5@163.com)
 * 
 * Permission is hereby granted, free of charge, to any person obtaining a copy of
 * this software and associated documentation files (the "Software"), to deal in
 * the Software without restriction, including without limitation the rights to
 * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
 * the Software, and to permit persons to whom the Software is furnished to do so,
 * subject to the following conditions:
 * 
 * The above copyright notice and this permission notice shall be included in all
 * copies or substantial portions of the Software.
 */
package com.openapi.alipay.trade.refund;

import com.fasterxml.jackson.annotation.JsonProperty;

/**
 * 统一收单交易退款接口－请求参数
 * @author Moyq5
 * @since 2016年7月25日
 */
public class AlipayTradeRefundBizContent {

	/**
	 * 订单支付时传入的商户订单号,不能和 trade_no同时为空<br>
	 * 特殊可选，最长64，如：20150320010101001
	 */
	@JsonProperty("out_trade_no")
	private String outTradeNo;
	
	/**
	 * 支付宝交易号，和商户订单号不能同时为空<br>
	 * 特殊可选，最长64，如：2014112611001004680 073956707
	 */
	@JsonProperty("trade_no")
	private String tradeNo;
	
	/**
	 * 需要退款的金额，该金额不能大于订单金额,单位为元，支持两位小数<br>
	 * 必填，最长9，如：200.12
	 */
	@JsonProperty("refund_amount")
	private Float refundAmount;
	
	/**
	 * 退款的原因说明<br>
	 * 最长256，如：正常退款
	 */
	@JsonProperty("refund_reason")
	private String refundReason;
	
	/**
	 * 标识一次退款请求，同一笔交易多次退款需要保证唯一，如需部分退款，则此参数必传。<br>
	 * 最长64，如：HZ01RF001
	 */
	@JsonProperty("out_request_no")
	private String outRequestNo;
	
	/**
	 * 商户的操作员编号<br>
	 * 最长30，如：OP001
	 */
	@JsonProperty("operator_id")
	private String operatorId;
	
	/**
	 * 商户的门店编号<br>
	 * 最长32，如：NJ_S_001
	 */
	@JsonProperty("store_id")
	private String storeId;
	
	/**
	 * 商户的终端编号<br>
	 * 最长32，如：NJ_T_001
	 */
	@JsonProperty("terminal_id")
	private String terminalId;

	/**
	 * 订单支付时传入的商户订单号,不能和 trade_no同时为空<br>
	 * 特殊可选，最长64，如：20150320010101001
	 * @return 订单支付时传入的商户订单号
	 */
	public String getOutTradeNo() {
		return outTradeNo;
	}

	/**
	 * 订单支付时传入的商户订单号,不能和 trade_no同时为空<br>
	 * 特殊可选，最长64，如：20150320010101001
	 * @param outTradeNo 订单支付时传入的商户订单号
	 */
	public void setOutTradeNo(String outTradeNo) {
		this.outTradeNo = outTradeNo;
	}

	/**
	 * 支付宝交易号，和商户订单号不能同时为空<br>
	 * 特殊可选，最长64，如：2014112611001004680 073956707
	 * @return 支付宝交易号
	 */
	public String getTradeNo() {
		return tradeNo;
	}

	/**
	 * 支付宝交易号，和商户订单号不能同时为空<br>
	 * 特殊可选，最长64，如：2014112611001004680 073956707
	 * @param tradeNo 支付宝交易号
	 */
	public void setTradeNo(String tradeNo) {
		this.tradeNo = tradeNo;
	}

	/**
	 * 需要退款的金额，该金额不能大于订单金额,单位为元，支持两位小数<br>
	 * 必填，最长9，如：200.12
	 * @return 需要退款的金额
	 */
	public Float getRefundAmount() {
		return refundAmount;
	}

	/**
	 * 需要退款的金额，该金额不能大于订单金额,单位为元，支持两位小数<br>
	 * 必填，最长9，如：200.12
	 * @param refundAmount 需要退款的金额
	 */
	public void setRefundAmount(Float refundAmount) {
		this.refundAmount = refundAmount;
	}

	/**
	 * 退款的原因说明<br>
	 * 最长256，如：正常退款
	 * @return 退款的原因说明
	 */
	public String getRefundReason() {
		return refundReason;
	}

	/**
	 * 退款的原因说明<br>
	 * 最长256，如：正常退款
	 * @param refundReason 退款的原因说明
	 */
	public void setRefundReason(String refundReason) {
		this.refundReason = refundReason;
	}

	/**
	 * 标识一次退款请求，同一笔交易多次退款需要保证唯一，如需部分退款，则此参数必传。<br>
	 * 最长64，如：HZ01RF001
	 * @return 退款请求标识
	 */
	public String getOutRequestNo() {
		return outRequestNo;
	}

	/**
	 * 标识一次退款请求，同一笔交易多次退款需要保证唯一，如需部分退款，则此参数必传。<br>
	 * 最长64，如：HZ01RF001
	 * @param outRequestNo 退款请求标识
	 */
	public void setOutRequestNo(String outRequestNo) {
		this.outRequestNo = outRequestNo;
	}

	/**
	 * 商户的操作员编号<br>
	 * 最长30，如：OP001
	 * @return 商户的操作员编号
	 */
	public String getOperatorId() {
		return operatorId;
	}

	/**
	 * 商户的操作员编号<br>
	 * 最长30，如：OP001
	 * @param operatorId 商户的操作员编号
	 */
	public void setOperatorId(String operatorId) {
		this.operatorId = operatorId;
	}

	/**
	 * 商户的门店编号<br>
	 * 最长32，如：NJ_S_001
	 * @return 商户的门店编号
	 */
	public String getStoreId() {
		return storeId;
	}

	/**
	 * 商户的门店编号<br>
	 * 最长32，如：NJ_S_001
	 * @param storeId 商户的门店编号
	 */
	public void setStoreId(String storeId) {
		this.storeId = storeId;
	}

	/**
	 * 商户的终端编号<br>
	 * 最长32，如：NJ_T_001
	 * @return 商户的终端编号
	 */
	public String getTerminalId() {
		return terminalId;
	}

	/**
	 * 商户的终端编号<br>
	 * 最长32，如：NJ_T_001
	 * @param terminalId 商户的终端编号
	 */
	public void setTerminalId(String terminalId) {
		this.terminalId = terminalId;
	}
}
